package pe.gob.sunarp.entidad;

import java.io.Serializable;
import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Set;


/**
 * The persistent class for the TM_CERTIFICADOS database table.
 * 
 */
@Entity
@Table(name="TM_CERTIFICADOS")
public class TmCertificado implements Serializable {
	private static final long serialVersionUID = 1L;
	private long certificadoId;
	private BigDecimal codGrupoLibroArea;
	private String estado;
	private String nombre;
	private String tpoCertificado;
	private String tpoPersona;
	private Set<TmLibro> tmLibros;
	private Set<CriteriosAsigna> criteriosAsignas;
	private Set<ObjetoSolicitud> objetoSolicituds;
	private TmAreaRegistral tmAreaRegistral;
	private TmServicio tmServicio;

    public TmCertificado() {
    }


	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="CERTIFICADO_ID", unique=true, nullable=false)
	public long getCertificadoId() {
		return this.certificadoId;
	}

	public void setCertificadoId(long certificadoId) {
		this.certificadoId = certificadoId;
	}


	@Column(name="COD_GRUPO_LIBRO_AREA", nullable=false)
	public BigDecimal getCodGrupoLibroArea() {
		return this.codGrupoLibroArea;
	}

	public void setCodGrupoLibroArea(BigDecimal codGrupoLibroArea) {
		this.codGrupoLibroArea = codGrupoLibroArea;
	}


	@Column(nullable=false, length=1)
	public String getEstado() {
		return this.estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}


	@Column(nullable=false, length=100)
	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}


	@Column(name="TPO_CERTIFICADO", nullable=false, length=1)
	public String getTpoCertificado() {
		return this.tpoCertificado;
	}

	public void setTpoCertificado(String tpoCertificado) {
		this.tpoCertificado = tpoCertificado;
	}


	@Column(name="TPO_PERSONA", nullable=false, length=1)
	public String getTpoPersona() {
		return this.tpoPersona;
	}

	public void setTpoPersona(String tpoPersona) {
		this.tpoPersona = tpoPersona;
	}


	//bi-directional many-to-many association to TmLibro
    @ManyToMany
	@JoinTable(
		name="CERTIFICADO_LIBRO"
		, joinColumns={
			@JoinColumn(name="CERTIFICADO_ID", nullable=false)
			}
		, inverseJoinColumns={
			@JoinColumn(name="COD_LIBRO", nullable=false)
			}
		)
	public Set<TmLibro> getTmLibros() {
		return this.tmLibros;
	}

	public void setTmLibros(Set<TmLibro> tmLibros) {
		this.tmLibros = tmLibros;
	}
	

	//bi-directional many-to-one association to CriteriosAsigna
	@OneToMany(mappedBy="tmCertificado")
	public Set<CriteriosAsigna> getCriteriosAsignas() {
		return this.criteriosAsignas;
	}

	public void setCriteriosAsignas(Set<CriteriosAsigna> criteriosAsignas) {
		this.criteriosAsignas = criteriosAsignas;
	}
	

	//bi-directional many-to-one association to ObjetoSolicitud
	@OneToMany(mappedBy="tmCertificado")
	public Set<ObjetoSolicitud> getObjetoSolicituds() {
		return this.objetoSolicituds;
	}

	public void setObjetoSolicituds(Set<ObjetoSolicitud> objetoSolicituds) {
		this.objetoSolicituds = objetoSolicituds;
	}
	

	//bi-directional many-to-one association to TmAreaRegistral
    @ManyToOne
	@JoinColumn(name="AREA_REG_ID", nullable=false)
	public TmAreaRegistral getTmAreaRegistral() {
		return this.tmAreaRegistral;
	}

	public void setTmAreaRegistral(TmAreaRegistral tmAreaRegistral) {
		this.tmAreaRegistral = tmAreaRegistral;
	}
	

	//bi-directional many-to-one association to TmServicio
    @ManyToOne
	@JoinColumn(name="SERVICIO_ID", nullable=false)
	public TmServicio getTmServicio() {
		return this.tmServicio;
	}

	public void setTmServicio(TmServicio tmServicio) {
		this.tmServicio = tmServicio;
	}
	
}